--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Node / ReticulumProjects / MeshChatX.git / files / scripts / ci / github-build-linux-release-assets.sh
Displaying Raw • Download
scripts/ci/github-build-linux-release-assets.sh v4.6.2-rc.1 (6ba4fecd) Text, 2.11 KB
T8b949e#!/usr/bin/env bash
T8b949e# Build wheel, Linux AppImage/deb (x64 + arm64), optional RPM, frontend zip, and SBOM under ./release-assets/.
T8b949e# Expects repo root as cwd, dependencies installed (task install / pnpm), and meshchatx/public populated when building Electron.
T8b949e# Optional: SKIP_WHEEL=1, SKIP_ELECTRON=1, TRIVY_SBOM=0
Tffa657set -euo pipefail
Te6edf3ROOTTff7b72=Ta5d6ff"Tff7b72$(Tffa657cd Ta5d6ff"Tff7b72$(dirname Ta5d6ff"Te6edf3$0Ta5d6ff"Tff7b72)Ta5d6ff/../..Ta5d6ff" Tff7b72&& Tffa657pwdTff7b72)Ta5d6ff"
Tffa657cd Ta5d6ff"Te6edf3$ROOTTa5d6ff"
T8b949e# shellcheck source=scripts/ci/ci-node-path.sh
. Ta5d6ff"Tff7b72$(dirname Ta5d6ff"Te6edf3$0Ta5d6ff"Tff7b72)Ta5d6ff/ci-node-path.shTa5d6ff"
mkdir -p release-assets
Tff7b72if Tff7b72[ Ta5d6ff"Tffd700${Te6edf3SKIP_WHEELTff7b72:-Te6edf30Tffd700}Ta5d6ff" !Tff7b72= T79c0ff1 Tff7b72]Tb4b4b4; Tff7b72then
Tffa657echo Ta5d6ff"Building Python wheel..."
task build:wheel
Tff7b72else
Tffa657echo Ta5d6ff"Skipping wheel (SKIP_WHEEL=1)."
Tff7b72fi
Tff7b72if Tff7b72[ Ta5d6ff"Tffd700${Te6edf3SKIP_ELECTRONTff7b72:-Te6edf30Tffd700}Ta5d6ff" !Tff7b72= T79c0ff1 Tff7b72]Tb4b4b4; Tff7b72then
Tffa657echo Ta5d6ff"Electron linux x64..."
pnpm run dist:linux-x64
Tffa657echo Ta5d6ff"Electron linux arm64..."
pnpm run dist:linux-arm64
Tffa657echo Ta5d6ff"RPM (best-effort)..."
Tff7b72if ! task dist:fe:rpmTb4b4b4; Tff7b72then
Tffa657echo Ta5d6ff"RPM build failed or skipped; continuing." >Tb4b4b4&T79c0ff2
Tff7b72fi
Tff7b72else
Tffa657echo Ta5d6ff"Skipping Electron packages (SKIP_ELECTRON=1)."
Tff7b72fi
Tffa657echo Ta5d6ff"Collecting release files..."
find dist -maxdepth T79c0ff1 -type f Tffea00\( -name Ta5d6ff"*-linux*.AppImage" -o -name Ta5d6ff"*-linux*.deb" -o -name Ta5d6ff"*-linux*.rpm" Tffea00\) -exec cp -f Tff7b72{Tff7b72} release-assets/ Tffea00\; T79c0ff2>/dev/null Tff7b72|| Tffa657true
find python-dist -maxdepth T79c0ff1 -type f -name Ta5d6ff"*.whl" -exec cp -f Tff7b72{Tff7b72} release-assets/ Tffea00\; T79c0ff2>/dev/null Tff7b72|| Tffa657true
Tff7b72if Tff7b72[ -d meshchatx/public Tff7b72] Tff7b72&& Tff7b72[ Ta5d6ff"Tffd700${Te6edf3SKIP_ELECTRONTff7b72:-Te6edf30Tffd700}Ta5d6ff" !Tff7b72= T79c0ff1 Tff7b72]Tb4b4b4; Tff7b72then
Tff7b72( Tffa657cd meshchatx/public Tff7b72&& zip -qr Ta5d6ff"Tffd700${Te6edf3ROOTTffd700}Ta5d6ff/release-assets/meshchatx-frontend.zipTa5d6ff" . Tff7b72)
Tff7b72fi
Tff7b72{
Tffa657echo Ta5d6ff"## Integrity"
Tffa657echo Ta5d6ff""
Tffa657echo Ta5d6ff"Each artifact may have a matching **\`*.cosign.bundle\`** when repository signing secrets are configured (see SECURITY.md)."
Tffa657echo Ta5d6ff""
Tffa657echo Ta5d6ff"SBOM: **\`sbom.cyclonedx.json\`** (CycloneDX) when produced by CI."
Tff7b72} > release-body.md
Tff7b72if Tff7b72[ Ta5d6ff"Tffd700${Te6edf3TRIVY_SBOMTff7b72:-Te6edf31Tffd700}Ta5d6ff" !Tff7b72= T79c0ff0 Tff7b72] Tff7b72&& Tffa657command -v trivy >/dev/null T79c0ff2>Tb4b4b4&T79c0ff1Tb4b4b4; Tff7b72then
Tffa657echo Ta5d6ff"Generating SBOM..."
trivy fs --format cyclonedx --include-dev-deps --output release-assets/sbom.cyclonedx.json .
Tff7b72else
Tffa657echo Ta5d6ff"Skipping SBOM (trivy not on PATH or TRIVY_SBOM=0)." >Tb4b4b4&T79c0ff2
Tff7b72fi
Tffa657echo Ta5d6ff"github-build-linux-release-assets.sh: done; see ./release-assets/"
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────